https://github.com/psotob91
En investigación, las bases de datos se organizan en tablas rectangulares estructuradas.
observaciónvariableAdaptado de Smit Aj, Abrahams A & Schlegel RW. Intro R Workshop: Data Manipulation, Analysius, and Visualization.
Con el comando oficial frame, Stata también puede trabajar con múltiples data frames (Más info aquí)
Uno puede observar y manipular un solo data frame a la vez.
frame constantemente.R tiene varios tipos de base de datos rectangulares:
Puede manipular todos a la vez en una sola sesión.
No tiene que estar cambiando de vista de una base de datos a otra.
data.tibble también son data.frame, pero con algunos poderes adicionales.# A tibble: 6 × 4
subject_id fake_first_name fake_last_name gender
<dbl> <chr> <chr> <chr>
1 1412 jhezane westerling female
2 533 penny targaryen female
3 9134 grunt rivers male
4 8518 melisandre swyft female
5 8967 rolley karstark male
6 11048 megga karstark female
data.tibble son data.frame aumentados: subject_id fake_first_name fake_last_name gender
1 1412 jhezane westerling female
2 533 penny targaryen female
3 9134 grunt rivers male
4 8518 melisandre swyft female
5 8967 rolley karstark male
6 11048 megga karstark female
7 663 ithoke targaryen male
8 2158 ravella frey female
data.frame son solo eso, data.frame:Vectores se limitan a un solo tipo de dato.
Conforman diversas estructuras: matrices, arreglos, listas, etc.
Usaremos principalmente data frames y data tibbles.
Los data frames y tibbles:
Son columnas de vectores.
Cada vector puede ser de distinto tipo.
Los data frames y tibbles:
vectores: colecciones de datos de un solo tipo:| Tipo de dato | (En inglés) | Descripción | Ejemplo |
|---|---|---|---|
| Entero | Integer | Solo números enteros | c(1, 2, 3, 4) |
| Doble | Double | Números | c(1, 2.4, 3.14, 4) |
| Caracter | Character | Texto o cadenas (‘strings’) | c(‘1’, ‘azul’, ‘divertido’, ‘monstruo’) |
| Lógicos | Logical | Verdadero o Falso | c(TRUE, FALSE, TRUE, FALSE) |
| Factor | Factor | Categorías | c(‘Muy intenso’, ‘Leve’, ‘Moderado’, ‘Leve’) |
| R | Stata |
|---|---|
| Integer | byte |
| Integer | int |
| Integer | long |
| Double | float |
| Double | double |
| Character | str |
| Logical | No tiene equivalente |
| Factor | Equivale a cualquier byte, int, long pero CON etiqueta (label) |
Son vectores enteros aumentados por etiquetas.
Se comportan de manera similar a Stata.
strings (cadenas)números, por lo que las variables categóricas son estructuras numéricas con etiquetas (label values)R sí puede operar con datos string (character).
Código en R:
Los datos perdidos son números infinitos representados por un punto .
Hay infinitos más grandes que otros. Stata lo sabe:
.a, .b, .c, …. < .a < .b < .c …Los infinitos al operarse aritméticamente con otros valores vuelven infinito el resultado (dato perdido).
En R, los datos perdidos son representados como NA, los cuales no son números.
NA = “not available”boleanos.El operar con un NA puede crear un NA o resultar en error.
R también maneja infinitos y otro tipo de valores "especiales":
-Inf, Inf, NaNInf y -Inf: números demasiado grandes o pequeños.
NaN: “not at number” (indeterminado o sin sentido)
Son los únicos boleanos que pueden estar dentro de vectores de otro tipo no lo coercionan.
Podemos hechar un vistazo (glimpse en inglés) a los datos:
Rows: 15,524
Columns: 17
$ subject_id <dbl> 1412, 533, 9134, 8518, 8967, 11048, 663, 2158, 3794, 4…
$ fake_first_name <chr> "jhezane", "penny", "grunt", "melisandre", "rolley", "…
$ fake_last_name <chr> "westerling", "targaryen", "rivers", "swyft", "karstar…
$ gender <chr> "female", "female", "male", "female", "male", "female"…
$ pan_day <dbl> 4, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 1…
$ test_id <chr> "covid", "covid", "covid", "covid", "covid", "covid", …
$ clinic_name <chr> "inpatient ward a", "clinical lab", "clinical lab", "c…
$ result <chr> "negative", "negative", "negative", "negative", "negat…
$ demo_group <chr> "patient", "patient", "patient", "patient", "patient",…
$ age <dbl> 0.0, 0.0, 0.8, 0.8, 0.8, 0.8, 0.8, 0.0, 0.0, 0.9, 0.9,…
$ drive_thru_ind <dbl> 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, …
$ ct_result <dbl> 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45…
$ orderset <dbl> 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, …
$ payor_group <chr> "government", "commercial", NA, NA, "government", "com…
$ patient_class <chr> "inpatient", "not applicable", NA, NA, "emergency", "r…
$ col_rec_tat <dbl> 1.4, 2.3, 7.3, 5.8, 1.2, 1.4, 2.6, 0.7, 1.0, 7.1, 2.5,…
$ rec_ver_tat <dbl> 5.2, 5.8, 4.7, 5.0, 6.4, 7.0, 4.2, 6.3, 5.6, 7.0, 3.8,…
taller_02.proyecto.
30:00
El paquete {rio} es la navaja suiza
de la importación de datos en R.
Su función import
permite importar
prácticamente
cualquier formato.
{rio} debe instalarse de una manera especial
Pasos:
Podemos omitir los nombres de los argumentos cuando utilizamos funciones.
Para archivos de tipo *.csv o *.txt
No importa el tipo de separación de las columnas: comas, puntos y comas, otros caracteres.
country year infant_mortality life_expectancy fertility
1 Albania 1960 115.40 62.87 6.19
2 Algeria 1960 148.20 47.50 7.65
3 Angola 1960 208.00 35.98 7.32
4 Antigua and Barbuda 1960 NA 62.97 4.43
5 Argentina 1960 59.87 65.39 3.11
6 Armenia 1960 NA 66.86 4.55
country year infant_mortality life_expectancy fertility
1 Albania 1960 115.40 62.87 6.19
2 Algeria 1960 148.20 47.50 7.65
3 Angola 1960 208.00 35.98 7.32
4 Antigua and Barbuda 1960 NA 62.97 4.43
5 Argentina 1960 59.87 65.39 3.11
6 Armenia 1960 NA 66.86 4.55
Permite importar datos de formato Stata. Sin embargo, en Stata, los valores de las variables suelen estar etiquetados, por lo que es importante también recuperar esta información.
Si importamos una tabla de datos en formato Stata, vemos que algunas variables categóricas como married o married2 se importan como números. ¿Qué significa 1 o 0?
country year infant_mortality life_expectancy fertility
1 1 1960 115.40 62.87 6.19
2 2 1960 148.20 47.50 7.65
3 3 1960 208.00 35.98 7.32
4 4 1960 NA 62.97 4.43
5 5 1960 59.87 65.39 3.11
6 6 1960 NA 66.86 4.55
country year infant_mortality life_expectancy fertility
1 1 1960 115.40 62.87 6.19
2 2 1960 148.20 47.50 7.65
3 3 1960 208.00 35.98 7.32
4 4 1960 NA 62.97 4.43
5 5 1960 59.87 65.39 3.11
6 6 1960 NA 66.86 4.55
La función import soporta una gran variedad de formatos.
Si alguna vez necesita, puede consultar la web del paquete y encontrará tutoriales de cómo importar los formatos que requiera.
import delimited “filepath.csv”, clear
import(“filepath.csv”)
import delimited “filepath.txt”, clear
import(“filepath.txt”)
import excel “filepath.xlsx”, clear
import(“filepath.xlsx”)
use “filepath.dta”, clear
import(“filepath.dta”)
import spss “filepath.sav”, clear
import(“filepath.sav”)
import sas “filepath.sas7bdat”, clear
import(“filepath.sas7bdat”)
/* No posible aún */
import(“filepath.rda”)
/* No posible aún */
import(“filepath.rds”)
Son los datos de los datos.
Dos metadatos bastante usados son:
Etiquetas de la variable
Etiquetas de los valores de la variable
Importar datos Stata solo con import()
time, treat, married y married2 se pierden. country year infant_mortality
1 1 1960 115.40
2 2 1960 148.20
3 3 1960 208.00
4 4 1960 NA
5 5 1960 59.87
6 6 1960 NA
Usar import() más characterize()
time, treat, married y married2 se recuperan country year infant_mortality
1 Albania 1960 115.40
2 Algeria 1960 148.20
3 Angola 1960 208.00
4 Antigua and Barbuda 1960 NA
5 Argentina 1960 59.87
6 Armenia 1960 NA
Importar datos SPSS solo con import()
time, treat, married y married2 se pierden. country year infant_mortality
1 1 1960 115.40
2 2 1960 148.20
3 3 1960 208.00
4 4 1960 NA
5 5 1960 59.87
6 6 1960 NA
Usar import() más characterize()
time, treat, married y married2 se recuperan country year infant_mortality
1 Albania 1960 115.40
2 Algeria 1960 148.20
3 Angola 1960 208.00
4 Antigua and Barbuda 1960 NA
5 Argentina 1960 59.87
6 Armenia 1960 NA
data frame o data tibble a otro formato:| Formato | Extensión típica |
|---|---|
| Comma-separated data | .csv |
| Pipe-separated data | .psv |
| Tab-separated data | .tsv |
| CSVY (CSV + YAML metadata header) | .csvy |
| SAS | .sas7bdat |
| SPSS | .sav |
| SPSS (compressed) | .zsav |
| Stata | .dta |
| SAS XPORT | .xpt |
| SPSS Portable | .por |
| Excel | .xls |
| Excel | .xlsx |
| R syntax | .R |
| Saved R objects | .RData, .rda |
| Serialized R objects | .rds |
| Epiinfo | .rec |
export delimited “filepath.csv”, clear
export(“filepath.csv”)
export delimited “filepath.txt”, clear
export(“filepath.txt”)
export excel “filepath.xlsx”, clear
export(“filepath.xlsx”)
use “filepath.dta”, clear
export(“filepath.dta”)
export spss “filepath.sav”, clear
export(“filepath.sav”)
export sas “filepath.sas7bdat”, clear
export(“filepath.sas7bdat”)
export sas “filepath.rda”, clear
export(“filepath.rda”)
export sas “filepath.rds”, clear
export(“filepath.rds”)
En la misma carpeta taller_02, copie todos los datos compartidos.
Importe los datos.
Ahora cree una subcarpeta Datos y copie todos los datos.
Importe los datos usando como ruta la subcarpeta Datos.
Exporte los datos a formato de R.
30:00
En programación, un
pipees una técnica para transmitir información de un proceso a otro.
En R, hay dos operadores pipe:
pipe de tidyverse: %>%
pipe nativo (de R base):|>
En este curso, usaremos el pipe de tidyverse: %>%
El operador pipe de tidyverse es del paquete {magrittr}, que no necesita ser cargado si es que se carga {tidyverse}.
Este operador conecta secuencia de acciones en forma de código:
yo
despierto a las 8 horas
salgo de cama por el lado derecho
visto pantalones y polo
salgo de casa con carro sin bicicleta
Atajo de teclado del operador pipe:
Ctrl + Shift + M
Ctrl + ⇧ + M
Sin %>%:
datos_fase1.Con %>%:
datos_fase1 solo se repite una vez.| Verbos | Función |
|---|---|
| Extrae filas con filter() | |
| Extrae columnas con select() | |
| Reordena filas con arrange() | |
| Crea nuevas / remplaza columnas con mutate | |
| Haz resumenes agrupados con group_by() y summarize() | |
Ingresa data.frame Sale data.frame | Ingresa data.tibble Sale data.tibble
| Operador | Definición | Operador | Definición |
|---|---|---|---|
| < | menor que | A | B | A o B |
| <= | menor o igual que | is.na(A) | evalúa si A es NA |
| > | mayor que | !is.na(A) | evalúa si A no es NA |
| >= | mayor o igual que | A %in% B | evalúa si A está en B |
| == | exactamente igual a | !(A %in% B) | evalúa si A no está en B |
| != | diferente de | !A | no A |
| A & B | A y B |
En la misma carpeta, practiquemos como funciona el operador %>%.
Juguemos con las funciones round() y mean().
30:00
Tomemos un descanso de 5 minutos…
Estire las piernas …
Deje de ver las pantallas …
… cualquier , las del celular también.
05:00
Rows: 10,000
Columns: 14
$ edad <dbl> 44, 34, 40, 54, 40, 31, 67, 31, 43, 22, 39, 9, 34…
$ muerte_covid <chr> "Not COVID death", "Not COVID death", "Not COVID …
$ pcr_fecha <chr> "22848", "22823", "22832", "22851", "22853", "227…
$ fecha_muerte <date> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ fecha_vacuna1 <date> 2021-08-07, 2021-09-05, 2021-02-11, 2021-07-15, …
$ fecha_vacuna2 <date> 2021-08-28, 2021-10-01, 2021-03-03, 2021-08-07, …
$ fecha_vacuna3 <date> 2021-12-27, 2022-03-27, 2021-10-19, 2022-01-08, …
$ fecha_vacuna4 <chr> "22842", ".", ".", "22803", ".", ".", ".", ".", "…
$ infeccion_previa <chr> "No Previous infection", "No Previous infection",…
$ id <chr> "73443", "59321", "105426", "24757", "65139", "68…
$ region <chr> "Ucayali", "Lima", "Cusco", "San Martin", "Piura"…
$ fin_periodo_fecha <chr> "22jul2022", "27jun2022", "06jul2022", "25jul2022…
$ inicio_periodo_fecha <chr> "07may2022", "07may2022", "07may2022", "07may2022…
$ sexo <chr> "Female", "Female", "Female", "Male", "Female", "…
keep edad sexo
select(datos_vac, edad, sexo) # dplyr sin pipe
datos_vac %>% select(edad, sexo) # dplyr con pipe
datos_vac %>%
select(edad, sexo) # pipe y buena práctica de estilo
keep edad sexo
select(datos_vac, edad, sexo) # dplyr sin pipe
datos_vac %>% select(edad, sexo) # dplyr con pipe
datos_vac %>%
select(edad, sexo) # pipe y buena práctica de estilo
comodines o wildcards como atajos de código para seleccionar columnas.funciones auxiliares o helpers que tienen la misma función que los comodines de Stata.keep fecha_vacuna*
datos_vac %>%
select(starts_with(“fecha_vacuna”))
comodines o wildcards como atajos de código para seleccionar columnas.funciones auxiliares o helpers que tienen la misma función que los comodines de Stata.keep fecha_vacuna*
datos_vac %>%
select(starts_with(“fecha_vacuna”))
| keep v* | datos_vac %>% |
| keep *v | datos_vac %>% |
| keep *v* | datos_vac %>% |
| keep v? | datos_vac %>% |
| keep * | datos_vac %>% |
| drop fecha_vacuna | datos_vac %>% |
| keep edad-fecha_vacuna1 | datos_vac %>% |
drop edad sexo
select(-datos_vac, -edad, -sexo) # dplyr sin pipe
datos_vac %>% select(-edad, -sexo) # dplyr con pipe
datos_vac %>%
select(-edad, -sexo) # pipe y buena práctica de estilo
rename.antiguo 2 nombre nuevo.rename() de {dplyr}.nuevo 2 nombre antiguo.rename region departamento
datos_vac %>%
rename(departamento = region)
Un rename por renombre.
Genera código redundante.
Un solo rename().
Código menos redudante.
rename region departamento
rename muerte_covid muerte
rename fecha_vacuna1 fech_vac1
datos_vac %>%
rename(departamento = region,
muerte = muerte_covid,
fech_vac1 = fecha_vacuna1)
Se usa el comando order:
first (por defecto), before, after, …Con {dplyr} hay dos opciones:
select()relocate()order id /* Equivale: order id, first */
datos_vac %>%
select(id, everything())
order id sexo edad muerte_covid
datos_vac %>%
select(id, sexo, edad, muerte_covid, everything())
order fecha_muerte, before(infeccion_previa)
datos_vac %>%
relocate(id, .before = infeccion_previa)
order fecha_muerte, after(fecha_vacuna4)
datos_vac %>%
relocate(id, .after = fecha_vacuna4)
generate crea columnas nuevas en Stata.nuevo 2 valor o regla.mutate() de {dplyr} equivale a generate.nuevo 2 valor o regla.gen nueva_variable = 1
datos_vac %>%
mutate(nueva_variable = 1)
Un generate por renombre.
Genera código redundante.
Un solo mutate().
Código menos redudante.
gen nueva_variable1 = 1
gen nueva_variable2 = “1”
gen nueva_variable3 = “prueba”
datos_vac %>%
mutate(nueva_variable1 = 1,
nueva_variable2 = “1”,
nueva_variable3 = “prueba”)
replace modifica columnas en Stata.mutate() de {dplyr} también equivale a replace.replace sexo = “0” if sexo == “Female”
datos_vac %>%
mutate(sexo = case_when(sexo == “Female” ~ “0”,
TRUE ~ sexo))
En la misma carpeta, con la data gapminder.
Seleccione columnas.
Elimine columnas.
Renombre columnas.
Reordene columnas
Cree nuevas columnas.
10:00
gen sexo2 = .
datos_vac %>%
mutate(sexo2 = case_when()
gen sexo2 = .
replace sexo2 = 0 if sexo == “Female”
datos_vac %>%
mutate(sexo2 = case_when(
sexo== “Female” ~ 0
)
)
gen sexo2 = .
replace sexo2 = 0 if sexo == “Female”
replace sexo2 = 1 if sexo == “Male”
datos_vac %>%
mutate(sexo2 = case_when(
sexo == “Female” ~ 0,
sexo== “Male” ~ 1
)
)
gen sexo2 = .
replace sexo2 = 0 if sexo == “Female”
replace sexo2 = 1 if sexo == “Male”
datos_vac %>%
mutate(sexo2 = case_when(
sexo == “Female” ~ 0,
sexo == “Male” ~ 1,
TRUE ~ as.numeric(NA)
)
)
gen sexo2 = .
replace sexo2 = 0 if sexo == “Female”
replace sexo2 = 1 if sexo == “Male”
datos_vac %>%
mutate(sexo2 = case_when(
sexo == “Female” ~ 0,
sexo == “Male” ~ 1,
TRUE ~ as.numeric(NA)
)
)
gen edad_cat = .
datos_vac %>%
mutate(edad_cat = case_when())
gen edad_cat = .
replace edad_cat = 1 if edad < 35
datos_vac %>%
mutate(edad_cat = case_when(
edad< 35 ~ 1
))
gen edad_cat = .
replace edad_cat = 1 if edad < 35
replace edad_cat = 2 if edad >= 35 & edad < 60
datos_vac %>%
mutate(edad_cat = case_when(
edad < 35 ~ 1,
edad>= 35 & edad < 60 ~ 2
))
gen edad_cat = .
replace edad_cat = 1 if edad < 35
replace edad_cat = 2 if edad >= 35 & edad < 60
replace edad_cat = 3 if edad >= 60 & edad < .
datos_vac %>%
mutate(edad_cat = case_when(
edad < 35 ~ 1,
edad >= 35 & edad < 60 ~ 2,
edad>= 60 ~ 3
))
gen edad_cat = .
replace edad_cat = 1 if edad < 35
replace edad_cat = 2 if edad >= 35 & edad < 60
replace edad_cat = 3 if edad >= 60 & edad < .
datos_vac %>%
mutate(edad_cat = case_when(
edad < 35 ~ 1,
edad >= 35 & edad < 60 ~ 2,
edad >= 60 ~ 3,
TRUE ~ as.numeric(NA)))
gen edad_cat = .
replace edad_cat = 1 if edad < 35
replace edad_cat = 2 if edad >= 35 & edad < 60
replace edad_cat = 3 if edad >= 60 & edad < .
datos_vac %>%
mutate(edad_cat = case_when(
edad < 35 ~ 1,
edad >= 35 & edad < 60 ~ 2,
edad >= 60 ~ 3,
TRUE ~ as.numeric(NA)))
datos %>%
mutate(
nueva_var = case_when(
condición1 ~ resultado1,
condición2 ~ resultado2,
condición3 ~ resultado3
)
)~: Alt + 1 + 2 + 6TRUE:datos %>%
mutate(
nueva_var = case_when(
condición1 ~ resultado1,
condición2 ~ resultado2,
condición3 ~ resultado3,
TRUE ~ resultado_si_condición_no_se_cumple
)
)Es muy importante siempre colocarla al final de cualquier conjunto de condiciones previas.
Cuando el resultado de no cumplirse es que se asigne valor perdido, es importante usar la función as.tipo_var() sobre el indicador de dato perdido NA.
Si es character: as.character(NA)
Si es numeric: as.numeric(NA)
datos_fase1 %>%
select(id, age) %>%
mutate(agecat = case_when(age >= 20 & age <= 30 ~ "20-30",
age >= 31 & age <= 35 ~ "31-35",
age >= 36 & age <= 41 ~ "36-41",
TRUE ~ as.character(NA))
) id age agecat
1 1 33 31-35
2 1 32 31-35
3 2 27 20-30
4 2 27 20-30
5 3 25 20-30
6 3 25 20-30
7 4 37 36-41
8 4 38 36-41
9 5 31 31-35
10 5 32 31-35
11 6 38 36-41
12 6 38 36-41
13 7 26 20-30
14 7 26 20-30
15 8 34 31-35
16 8 34 31-35
17 9 30 20-30
18 9 30 20-30
19 10 38 36-41
20 10 38 36-41
21 11 37 36-41
22 11 36 36-41
23 12 33 31-35
24 12 33 31-35
25 13 25 20-30
26 13 25 20-30
27 14 33 31-35
28 14 33 31-35
29 15 37 36-41
30 15 37 36-41
31 16 30 20-30
32 16 30 20-30
33 17 40 36-41
34 17 40 36-41
35 18 36 36-41
36 18 36 36-41
37 19 35 31-35
38 19 35 31-35
39 20 22 20-30
40 20 22 20-30
41 21 29 20-30
42 21 29 20-30
43 22 41 36-41
44 22 41 36-41
45 23 27 20-30
46 23 27 20-30
47 24 25 20-30
48 24 25 20-30
49 25 37 36-41
50 25 37 36-41
51 26 32 31-35
52 26 32 31-35
53 27 31 31-35
54 27 31 31-35
55 28 40 36-41
56 28 40 36-41
57 29 23 20-30
58 29 23 20-30
59 30 31 31-35
60 30 31 31-35
61 31 38 36-41
62 31 38 36-41
63 32 38 36-41
64 32 38 36-41
65 33 41 36-41
66 33 41 36-41
67 34 40 36-41
68 34 40 36-41
69 35 30 20-30
70 35 30 20-30
71 36 39 36-41
72 36 39 36-41
73 37 30 20-30
74 37 30 20-30
75 38 37 36-41
76 38 37 36-41
77 39 23 20-30
78 39 23 20-30
79 40 20 20-30
80 40 20 20-30
81 41 31 31-35
82 41 31 31-35
83 42 39 36-41
84 42 39 36-41
85 43 36 36-41
86 43 36 36-41
87 44 28 20-30
88 44 28 20-30
89 45 35 31-35
90 45 35 31-35
91 46 36 36-41
92 46 36 36-41
93 47 35 31-35
94 47 35 31-35
95 48 27 20-30
96 48 27 20-30
97 49 35 31-35
98 49 35 31-35
99 50 28 20-30
100 50 28 20-30
101 51 41 36-41
102 51 41 36-41
103 52 34 31-35
104 52 34 31-35
105 53 33 31-35
106 53 33 31-35
datos_fase1 %>%
mutate(elegible = case_when(
married2 == "Without couple" & procedence %in% c("Callao", "Carabayllo", "Chorrillos", "SJL") ~ "Elegible",
TRUE ~ "No elegible"
)
) id time treat age race married married2 procedence
1 1 Baseline Placebo 33 Mestiza Single Without couple Callao
2 1 3 months Placebo 32 Mestiza Single Without couple Callao
3 2 Baseline Dosis 2 27 Mestiza Single Without couple Santa Anita
4 2 3 months Dosis 2 27 Mestiza Single Without couple Santa Anita
5 3 Baseline Dosis 1 25 Mestiza Single Without couple Callao
6 3 3 months Dosis 1 25 Mestiza Single Without couple Callao
7 4 Baseline Dosis 1 37 Mestiza Divorced Without couple Callao
8 4 3 months Dosis 1 38 Mestiza Divorced Without couple Callao
9 5 Baseline Placebo 31 Mestiza Single Without couple La Molina
10 5 3 months Placebo 32 Mestiza Single Without couple La Molina
11 6 Baseline Placebo 38 Mestiza Married With couple Los Olivos
12 6 3 months Placebo 38 Mestiza Married With couple Los Olivos
13 7 Baseline Dosis 1 26 Mestiza Married With couple SMP
14 7 3 months Dosis 1 26 Mestiza Married With couple SMP
15 8 Baseline Placebo 34 Mestiza Married With couple Carabayllo
16 8 3 months Placebo 34 Mestiza Married With couple Carabayllo
17 9 Baseline Dosis 2 30 Mestiza Single Without couple SMP
18 9 3 months Dosis 2 30 Mestiza Single Without couple SMP
19 10 Baseline Placebo 38 Mestiza Single Without couple Pueblo Libre
20 10 3 months Placebo 38 Mestiza Single Without couple Pueblo Libre
21 11 Baseline Dosis 2 37 Mestiza Married With couple El Agustino
22 11 3 months Dosis 2 36 Mestiza Married With couple El Agustino
23 12 Baseline Dosis 2 33 Mestiza Single Without couple Lince
24 12 3 months Dosis 2 33 Mestiza Single Without couple Lince
25 13 Baseline Dosis 2 25 Mestiza Married With couple Callao
26 13 3 months Dosis 2 25 Mestiza Married With couple Callao
27 14 Baseline Placebo 33 Mestiza Single Without couple Surquillo
28 14 3 months Placebo 33 Mestiza Single Without couple Surquillo
29 15 Baseline Placebo 37 Mestiza Married With couple Comas
30 15 3 months Placebo 37 Mestiza Married With couple Comas
31 16 Baseline Dosis 1 30 Mestiza Single Without couple Los Olivos
32 16 3 months Dosis 1 30 Mestiza Single Without couple Los Olivos
33 17 Baseline Placebo 40 Mestiza Widowed Without couple Surquillo
34 17 3 months Placebo 40 Mestiza Widowed Without couple Surquillo
35 18 Baseline Placebo 36 Mestiza Married With couple Miraflores
36 18 3 months Placebo 36 Mestiza Married With couple Miraflores
37 19 Baseline Dosis 2 35 Mestiza Single Without couple Comas
38 19 3 months Dosis 2 35 Mestiza Single Without couple Comas
39 20 Baseline Placebo 22 Mestiza Single Without couple Surquillo
40 20 3 months Placebo 22 Mestiza Single Without couple Surquillo
41 21 Baseline Placebo 29 Mestiza Married With couple SJL
42 21 3 months Placebo 29 Mestiza Married With couple SJL
43 22 Baseline Dosis 1 41 Mestiza Single Without couple Chorrillos
44 22 3 months Dosis 1 41 Mestiza Single Without couple Chorrillos
45 23 Baseline Dosis 1 27 Mestiza Single Without couple Los Olivos
46 23 3 months Dosis 1 27 Mestiza Single Without couple Los Olivos
47 24 Baseline Dosis 1 25 Mestiza Married With couple Los Olivos
48 24 3 months Dosis 1 25 Mestiza Married With couple Los Olivos
49 25 Baseline Placebo 37 Mestiza Married With couple San Borja
50 25 3 months Placebo 37 Mestiza Married With couple San Borja
51 26 Baseline Placebo 32 Mestiza Married With couple Chosica
52 26 3 months Placebo 32 Mestiza Married With couple Chosica
53 27 Baseline Dosis 1 31 Mestiza Single Without couple San Borja
54 27 3 months Dosis 1 31 Mestiza Single Without couple San Borja
55 28 Baseline Dosis 2 40 Mestiza Married With couple SJL
56 28 3 months Dosis 2 40 Mestiza Married With couple SJL
57 29 Baseline Dosis 1 23 Mestiza Single Without couple SJL
58 29 3 months Dosis 1 23 Mestiza Single Without couple SJL
59 30 Baseline Dosis 1 31 Mestiza Married With couple Comas
60 30 3 months Dosis 1 31 Mestiza Married With couple Comas
61 31 Baseline Dosis 1 38 Mestiza Single Without couple VMT
62 31 3 months Dosis 1 38 Mestiza Single Without couple VMT
63 32 Baseline Dosis 2 38 Mestiza Married With couple SMP
64 32 3 months Dosis 2 38 Mestiza Married With couple SMP
65 33 Baseline Dosis 2 41 Mestiza Married With couple SJL
66 33 3 months Dosis 2 41 Mestiza Married With couple SJL
67 34 Baseline Dosis 1 40 Mestiza Single Without couple Bre;a
68 34 3 months Dosis 1 40 Mestiza Single Without couple Bre;a
69 35 Baseline Dosis 2 30 Mestiza Married With couple Rimac
70 35 3 months Dosis 2 30 Mestiza Married With couple Rimac
71 36 Baseline Dosis 1 39 Mestiza Single Without couple Magdalena
72 36 3 months Dosis 1 39 Mestiza Single Without couple Magdalena
73 37 Baseline Dosis 2 30 Mestiza Single Without couple El Agustino
74 37 3 months Dosis 2 30 Mestiza Single Without couple El Agustino
75 38 Baseline Dosis 2 37 Mestiza Married With couple Lince
76 38 3 months Dosis 2 37 Mestiza Married With couple Lince
77 39 Baseline Dosis 2 23 Mestiza Single Without couple Callao
78 39 3 months Dosis 2 23 Mestiza Single Without couple Callao
79 40 Baseline Placebo 20 Mestiza Single Without couple VES
80 40 3 months Placebo 20 Mestiza Single Without couple VES
81 41 Baseline Dosis 1 31 Mestiza Married With couple Lince
82 41 3 months Dosis 1 31 Mestiza Married With couple Lince
83 42 Baseline Dosis 2 39 Mestiza Married With couple Los Olivos
84 42 3 months Dosis 2 39 Mestiza Married With couple Los Olivos
85 43 Baseline Placebo 36 Mestiza Single Without couple Villa el Salvador
86 43 3 months Placebo 36 Mestiza Single Without couple Villa el Salvador
87 44 Baseline Dosis 1 28 Mestiza Married With couple Lince
88 44 3 months Dosis 1 28 Mestiza Married With couple Lince
89 45 Baseline Placebo 35 Mestiza Married With couple Los Olivos
90 45 3 months Placebo 35 Mestiza Married With couple Los Olivos
91 46 Baseline Dosis 2 36 Mestiza Married With couple El Agustino
92 46 3 months Dosis 2 36 Mestiza Married With couple El Agustino
93 47 Baseline Dosis 2 35 Mestiza Single Without couple Magdalena
94 47 3 months Dosis 2 35 Mestiza Single Without couple Magdalena
95 48 Baseline Placebo 27 Mestiza Single Without couple Callao
96 48 3 months Placebo 27 Mestiza Single Without couple Callao
97 49 Baseline Dosis 2 35 Mestiza Married With couple Comas
98 49 3 months Dosis 2 35 Mestiza Married With couple Comas
99 50 Baseline Dosis 2 28 Mestiza Married With couple VMT
100 50 3 months Dosis 2 28 Mestiza Married With couple VMT
101 51 Baseline Dosis 1 41 Mestiza Married With couple Surco
102 51 3 months Dosis 1 41 Mestiza Married With couple Surco
103 52 Baseline Dosis 1 34 Mestiza Cohabiting With couple SMP
104 52 3 months Dosis 1 34 Mestiza Cohabiting With couple SMP
105 53 Baseline Dosis 2 33 Mestiza Single Without couple La Molina
106 53 3 months Dosis 2 33 Mestiza Single Without couple La Molina
weight height e2 lh fsh prog elegible
1 59.0 1.4 87.30 3.28 1.95 14.20 Elegible
2 59.9 1.3 210.05 26.85 8.83 12.95 Elegible
3 62.0 1.5 169.01 6.34 4.32 0.50 No elegible
4 62.1 1.6 99.91 5.77 1.70 9.61 No elegible
5 62.0 1.6 78.76 11.86 2.81 10.46 Elegible
6 60.0 1.6 155.04 10.14 4.51 5.04 Elegible
7 60.9 1.5 40.99 4.57 3.81 4.64 Elegible
8 61.4 1.5 109.03 7.29 2.39 11.73 Elegible
9 64.0 1.5 43.01 7.81 2.01 15.11 No elegible
10 58.1 1.6 56.05 9.15 3.66 11.46 No elegible
11 54.5 1.5 36.25 2.89 3.86 10.85 No elegible
12 53.9 1.5 44.67 5.87 3.09 12.03 No elegible
13 59.1 1.6 91.28 3.25 4.77 9.54 No elegible
14 58.6 1.6 91.34 3.31 4.83 9.60 No elegible
15 64.0 1.5 65.65 6.08 2.11 13.65 No elegible
16 59.0 1.5 134.04 3.99 1.53 9.53 No elegible
17 61.0 1.6 49.58 10.88 4.04 0.55 No elegible
18 63.1 1.7 46.28 17.58 4.65 0.08 No elegible
19 56.1 1.7 114.88 12.28 1.58 8.73 No elegible
20 54.9 1.5 71.47 1.57 2.40 3.68 No elegible
21 72.0 1.6 66.38 5.38 5.31 13.58 No elegible
22 NA NA 110.32 32.02 3.55 19.10 No elegible
23 68.0 1.5 403.99 28.69 3.53 21.89 No elegible
24 68.0 1.5 178.96 7.02 1.67 16.46 No elegible
25 48.5 1.5 73.80 4.30 2.86 14.80 No elegible
26 54.0 1.5 130.15 15.85 5.78 6.95 No elegible
27 65.0 1.6 47.35 4.56 3.44 4.84 No elegible
28 64.5 1.6 59.20 6.15 2.06 10.00 No elegible
29 50.5 1.4 143.09 92.89 1.98 23.29 No elegible
30 50.1 1.5 110.18 8.28 5.26 5.82 No elegible
31 56.0 1.5 80.99 7.27 5.81 0.69 No elegible
32 55.9 1.5 73.12 3.82 3.55 3.80 No elegible
33 65.0 1.6 91.76 5.35 2.25 6.59 No elegible
34 65.0 1.6 73.00 5.37 2.10 11.20 No elegible
35 70.0 1.6 131.00 19.20 1.74 11.20 No elegible
36 71.0 1.7 261.03 49.33 2.17 14.63 No elegible
37 52.1 1.6 164.96 6.48 1.89 9.69 No elegible
38 53.0 1.5 165.02 6.54 1.95 9.75 No elegible
39 59.0 1.5 98.95 5.68 3.17 0.98 No elegible
40 59.0 1.5 33.15 3.45 5.39 12.65 No elegible
41 56.9 1.4 71.61 6.54 1.94 9.37 No elegible
42 57.1 1.5 29.55 1.02 6.72 0.41 No elegible
43 64.0 1.5 91.41 1.81 9.13 0.55 Elegible
44 63.0 1.5 111.98 32.58 21.18 0.22 Elegible
45 52.0 1.5 87.62 3.96 5.34 9.50 No elegible
46 51.0 1.5 93.67 3.19 5.62 7.25 No elegible
47 64.0 1.5 158.96 5.75 3.83 12.26 No elegible
48 64.0 1.5 120.03 13.13 4.66 3.45 No elegible
49 58.1 1.6 66.97 1.46 4.68 2.94 No elegible
50 54.0 1.6 93.10 35.40 6.80 2.21 No elegible
51 72.1 1.7 116.97 1.58 3.39 2.93 No elegible
52 68.5 1.6 21.15 1.85 3.50 5.88 No elegible
53 54.0 1.5 40.44 6.03 2.29 10.94 No elegible
54 55.0 1.5 140.00 3.76 2.63 9.77 No elegible
55 81.5 1.6 104.09 4.77 2.89 10.99 No elegible
56 70.1 1.6 150.07 8.07 4.37 12.02 No elegible
57 49.0 1.6 59.55 7.01 4.06 2.72 Elegible
58 50.1 1.6 129.97 2.94 1.55 16.57 Elegible
59 54.9 1.5 96.97 5.95 5.42 3.92 No elegible
60 56.0 1.5 160.40 24.10 2.03 7.58 No elegible
61 65.0 1.5 48.53 10.33 3.60 0.14 No elegible
62 65.0 1.5 124.00 8.26 6.43 10.90 No elegible
63 59.0 1.5 108.94 3.27 3.45 10.04 No elegible
64 58.0 1.5 122.97 5.63 5.37 9.79 No elegible
65 74.0 1.7 56.65 12.95 5.18 14.45 No elegible
66 74.5 1.7 219.99 15.09 7.18 12.99 No elegible
67 72.6 1.5 150.06 49.16 1.26 28.46 No elegible
68 76.0 1.6 170.49 46.19 2.61 11.30 No elegible
69 51.9 1.4 85.74 3.54 1.83 4.58 No elegible
70 53.0 1.4 46.48 3.38 4.65 4.21 No elegible
71 81.0 1.5 109.87 2.95 3.61 8.64 No elegible
72 NA NA 103.95 2.06 1.57 8.99 No elegible
73 51.0 1.5 76.06 2.81 3.92 5.67 No elegible
74 51.4 1.4 45.26 1.17 2.41 5.86 No elegible
75 62.0 1.5 26.21 7.50 3.71 20.51 No elegible
76 62.5 1.5 81.91 3.02 1.99 10.41 No elegible
77 56.0 1.5 58.90 2.24 1.57 10.90 Elegible
78 56.0 1.5 75.49 2.64 7.96 0.91 Elegible
79 61.0 1.5 98.62 2.42 4.51 5.97 No elegible
80 60.0 1.5 267.99 2.39 0.82 1.47 No elegible
81 91.9 1.5 45.39 5.47 4.11 9.58 No elegible
82 92.1 1.7 58.67 14.77 3.67 3.71 No elegible
83 55.0 1.6 48.53 3.03 2.33 21.53 No elegible
84 56.0 1.6 21.40 1.98 4.18 0.63 No elegible
85 56.9 1.4 132.01 6.74 8.91 9.96 No elegible
86 57.6 1.6 39.65 13.25 5.41 0.26 No elegible
87 55.9 1.4 139.94 61.44 5.43 12.64 No elegible
88 57.0 1.6 27.29 4.31 4.00 9.04 No elegible
89 78.1 1.7 122.98 4.95 4.38 21.48 No elegible
90 NA NA 366.07 14.87 5.49 7.42 No elegible
91 65.1 1.7 386.97 14.77 1.93 9.39 No elegible
92 65.5 1.7 91.74 5.64 5.25 9.43 No elegible
93 54.0 1.5 77.89 4.99 1.28 7.09 No elegible
94 53.0 1.5 77.32 24.92 4.63 7.90 No elegible
95 55.9 1.4 185.02 4.28 3.72 5.79 Elegible
96 54.9 1.5 28.87 17.47 12.07 1.45 Elegible
97 57.0 1.4 31.49 3.15 2.33 20.69 No elegible
98 56.8 1.5 110.16 12.16 3.96 11.54 No elegible
99 73.1 1.6 121.67 23.17 1.57 13.37 No elegible
100 71.7 1.4 217.02 4.27 2.66 1.47 No elegible
101 65.0 1.5 47.80 14.90 1.78 15.00 No elegible
102 64.9 1.5 120.17 21.07 4.30 16.29 No elegible
103 59.0 1.6 289.00 60.20 9.95 11.80 No elegible
104 54.0 1.5 75.78 4.38 14.23 9.96 No elegible
105 64.9 1.4 136.89 3.63 2.01 10.69 No elegible
106 66.0 1.5 217.00 4.26 5.36 0.20 No elegible
En la misma carpeta, con la data gapminder.
Cree columnas basados en condición
10:00
datos_fase1 %>%
mutate(married2 = recode(married2,
"Without couple" = "Sin pareja",
"With couple" = "Con pareja")) id time treat age race married married2 procedence
1 1 Baseline Placebo 33 Mestiza Single Sin pareja Callao
2 1 3 months Placebo 32 Mestiza Single Sin pareja Callao
3 2 Baseline Dosis 2 27 Mestiza Single Sin pareja Santa Anita
4 2 3 months Dosis 2 27 Mestiza Single Sin pareja Santa Anita
5 3 Baseline Dosis 1 25 Mestiza Single Sin pareja Callao
6 3 3 months Dosis 1 25 Mestiza Single Sin pareja Callao
7 4 Baseline Dosis 1 37 Mestiza Divorced Sin pareja Callao
8 4 3 months Dosis 1 38 Mestiza Divorced Sin pareja Callao
9 5 Baseline Placebo 31 Mestiza Single Sin pareja La Molina
10 5 3 months Placebo 32 Mestiza Single Sin pareja La Molina
11 6 Baseline Placebo 38 Mestiza Married Con pareja Los Olivos
12 6 3 months Placebo 38 Mestiza Married Con pareja Los Olivos
13 7 Baseline Dosis 1 26 Mestiza Married Con pareja SMP
14 7 3 months Dosis 1 26 Mestiza Married Con pareja SMP
15 8 Baseline Placebo 34 Mestiza Married Con pareja Carabayllo
16 8 3 months Placebo 34 Mestiza Married Con pareja Carabayllo
17 9 Baseline Dosis 2 30 Mestiza Single Sin pareja SMP
18 9 3 months Dosis 2 30 Mestiza Single Sin pareja SMP
19 10 Baseline Placebo 38 Mestiza Single Sin pareja Pueblo Libre
20 10 3 months Placebo 38 Mestiza Single Sin pareja Pueblo Libre
21 11 Baseline Dosis 2 37 Mestiza Married Con pareja El Agustino
22 11 3 months Dosis 2 36 Mestiza Married Con pareja El Agustino
23 12 Baseline Dosis 2 33 Mestiza Single Sin pareja Lince
24 12 3 months Dosis 2 33 Mestiza Single Sin pareja Lince
25 13 Baseline Dosis 2 25 Mestiza Married Con pareja Callao
26 13 3 months Dosis 2 25 Mestiza Married Con pareja Callao
27 14 Baseline Placebo 33 Mestiza Single Sin pareja Surquillo
28 14 3 months Placebo 33 Mestiza Single Sin pareja Surquillo
29 15 Baseline Placebo 37 Mestiza Married Con pareja Comas
30 15 3 months Placebo 37 Mestiza Married Con pareja Comas
31 16 Baseline Dosis 1 30 Mestiza Single Sin pareja Los Olivos
32 16 3 months Dosis 1 30 Mestiza Single Sin pareja Los Olivos
33 17 Baseline Placebo 40 Mestiza Widowed Sin pareja Surquillo
34 17 3 months Placebo 40 Mestiza Widowed Sin pareja Surquillo
35 18 Baseline Placebo 36 Mestiza Married Con pareja Miraflores
36 18 3 months Placebo 36 Mestiza Married Con pareja Miraflores
37 19 Baseline Dosis 2 35 Mestiza Single Sin pareja Comas
38 19 3 months Dosis 2 35 Mestiza Single Sin pareja Comas
39 20 Baseline Placebo 22 Mestiza Single Sin pareja Surquillo
40 20 3 months Placebo 22 Mestiza Single Sin pareja Surquillo
41 21 Baseline Placebo 29 Mestiza Married Con pareja SJL
42 21 3 months Placebo 29 Mestiza Married Con pareja SJL
43 22 Baseline Dosis 1 41 Mestiza Single Sin pareja Chorrillos
44 22 3 months Dosis 1 41 Mestiza Single Sin pareja Chorrillos
45 23 Baseline Dosis 1 27 Mestiza Single Sin pareja Los Olivos
46 23 3 months Dosis 1 27 Mestiza Single Sin pareja Los Olivos
47 24 Baseline Dosis 1 25 Mestiza Married Con pareja Los Olivos
48 24 3 months Dosis 1 25 Mestiza Married Con pareja Los Olivos
49 25 Baseline Placebo 37 Mestiza Married Con pareja San Borja
50 25 3 months Placebo 37 Mestiza Married Con pareja San Borja
51 26 Baseline Placebo 32 Mestiza Married Con pareja Chosica
52 26 3 months Placebo 32 Mestiza Married Con pareja Chosica
53 27 Baseline Dosis 1 31 Mestiza Single Sin pareja San Borja
54 27 3 months Dosis 1 31 Mestiza Single Sin pareja San Borja
55 28 Baseline Dosis 2 40 Mestiza Married Con pareja SJL
56 28 3 months Dosis 2 40 Mestiza Married Con pareja SJL
57 29 Baseline Dosis 1 23 Mestiza Single Sin pareja SJL
58 29 3 months Dosis 1 23 Mestiza Single Sin pareja SJL
59 30 Baseline Dosis 1 31 Mestiza Married Con pareja Comas
60 30 3 months Dosis 1 31 Mestiza Married Con pareja Comas
61 31 Baseline Dosis 1 38 Mestiza Single Sin pareja VMT
62 31 3 months Dosis 1 38 Mestiza Single Sin pareja VMT
63 32 Baseline Dosis 2 38 Mestiza Married Con pareja SMP
64 32 3 months Dosis 2 38 Mestiza Married Con pareja SMP
65 33 Baseline Dosis 2 41 Mestiza Married Con pareja SJL
66 33 3 months Dosis 2 41 Mestiza Married Con pareja SJL
67 34 Baseline Dosis 1 40 Mestiza Single Sin pareja Bre;a
68 34 3 months Dosis 1 40 Mestiza Single Sin pareja Bre;a
69 35 Baseline Dosis 2 30 Mestiza Married Con pareja Rimac
70 35 3 months Dosis 2 30 Mestiza Married Con pareja Rimac
71 36 Baseline Dosis 1 39 Mestiza Single Sin pareja Magdalena
72 36 3 months Dosis 1 39 Mestiza Single Sin pareja Magdalena
73 37 Baseline Dosis 2 30 Mestiza Single Sin pareja El Agustino
74 37 3 months Dosis 2 30 Mestiza Single Sin pareja El Agustino
75 38 Baseline Dosis 2 37 Mestiza Married Con pareja Lince
76 38 3 months Dosis 2 37 Mestiza Married Con pareja Lince
77 39 Baseline Dosis 2 23 Mestiza Single Sin pareja Callao
78 39 3 months Dosis 2 23 Mestiza Single Sin pareja Callao
79 40 Baseline Placebo 20 Mestiza Single Sin pareja VES
80 40 3 months Placebo 20 Mestiza Single Sin pareja VES
81 41 Baseline Dosis 1 31 Mestiza Married Con pareja Lince
82 41 3 months Dosis 1 31 Mestiza Married Con pareja Lince
83 42 Baseline Dosis 2 39 Mestiza Married Con pareja Los Olivos
84 42 3 months Dosis 2 39 Mestiza Married Con pareja Los Olivos
85 43 Baseline Placebo 36 Mestiza Single Sin pareja Villa el Salvador
86 43 3 months Placebo 36 Mestiza Single Sin pareja Villa el Salvador
87 44 Baseline Dosis 1 28 Mestiza Married Con pareja Lince
88 44 3 months Dosis 1 28 Mestiza Married Con pareja Lince
89 45 Baseline Placebo 35 Mestiza Married Con pareja Los Olivos
90 45 3 months Placebo 35 Mestiza Married Con pareja Los Olivos
91 46 Baseline Dosis 2 36 Mestiza Married Con pareja El Agustino
92 46 3 months Dosis 2 36 Mestiza Married Con pareja El Agustino
93 47 Baseline Dosis 2 35 Mestiza Single Sin pareja Magdalena
94 47 3 months Dosis 2 35 Mestiza Single Sin pareja Magdalena
95 48 Baseline Placebo 27 Mestiza Single Sin pareja Callao
96 48 3 months Placebo 27 Mestiza Single Sin pareja Callao
97 49 Baseline Dosis 2 35 Mestiza Married Con pareja Comas
98 49 3 months Dosis 2 35 Mestiza Married Con pareja Comas
99 50 Baseline Dosis 2 28 Mestiza Married Con pareja VMT
100 50 3 months Dosis 2 28 Mestiza Married Con pareja VMT
101 51 Baseline Dosis 1 41 Mestiza Married Con pareja Surco
102 51 3 months Dosis 1 41 Mestiza Married Con pareja Surco
103 52 Baseline Dosis 1 34 Mestiza Cohabiting Con pareja SMP
104 52 3 months Dosis 1 34 Mestiza Cohabiting Con pareja SMP
105 53 Baseline Dosis 2 33 Mestiza Single Sin pareja La Molina
106 53 3 months Dosis 2 33 Mestiza Single Sin pareja La Molina
weight height e2 lh fsh prog
1 59.0 1.4 87.30 3.28 1.95 14.20
2 59.9 1.3 210.05 26.85 8.83 12.95
3 62.0 1.5 169.01 6.34 4.32 0.50
4 62.1 1.6 99.91 5.77 1.70 9.61
5 62.0 1.6 78.76 11.86 2.81 10.46
6 60.0 1.6 155.04 10.14 4.51 5.04
7 60.9 1.5 40.99 4.57 3.81 4.64
8 61.4 1.5 109.03 7.29 2.39 11.73
9 64.0 1.5 43.01 7.81 2.01 15.11
10 58.1 1.6 56.05 9.15 3.66 11.46
11 54.5 1.5 36.25 2.89 3.86 10.85
12 53.9 1.5 44.67 5.87 3.09 12.03
13 59.1 1.6 91.28 3.25 4.77 9.54
14 58.6 1.6 91.34 3.31 4.83 9.60
15 64.0 1.5 65.65 6.08 2.11 13.65
16 59.0 1.5 134.04 3.99 1.53 9.53
17 61.0 1.6 49.58 10.88 4.04 0.55
18 63.1 1.7 46.28 17.58 4.65 0.08
19 56.1 1.7 114.88 12.28 1.58 8.73
20 54.9 1.5 71.47 1.57 2.40 3.68
21 72.0 1.6 66.38 5.38 5.31 13.58
22 NA NA 110.32 32.02 3.55 19.10
23 68.0 1.5 403.99 28.69 3.53 21.89
24 68.0 1.5 178.96 7.02 1.67 16.46
25 48.5 1.5 73.80 4.30 2.86 14.80
26 54.0 1.5 130.15 15.85 5.78 6.95
27 65.0 1.6 47.35 4.56 3.44 4.84
28 64.5 1.6 59.20 6.15 2.06 10.00
29 50.5 1.4 143.09 92.89 1.98 23.29
30 50.1 1.5 110.18 8.28 5.26 5.82
31 56.0 1.5 80.99 7.27 5.81 0.69
32 55.9 1.5 73.12 3.82 3.55 3.80
33 65.0 1.6 91.76 5.35 2.25 6.59
34 65.0 1.6 73.00 5.37 2.10 11.20
35 70.0 1.6 131.00 19.20 1.74 11.20
36 71.0 1.7 261.03 49.33 2.17 14.63
37 52.1 1.6 164.96 6.48 1.89 9.69
38 53.0 1.5 165.02 6.54 1.95 9.75
39 59.0 1.5 98.95 5.68 3.17 0.98
40 59.0 1.5 33.15 3.45 5.39 12.65
41 56.9 1.4 71.61 6.54 1.94 9.37
42 57.1 1.5 29.55 1.02 6.72 0.41
43 64.0 1.5 91.41 1.81 9.13 0.55
44 63.0 1.5 111.98 32.58 21.18 0.22
45 52.0 1.5 87.62 3.96 5.34 9.50
46 51.0 1.5 93.67 3.19 5.62 7.25
47 64.0 1.5 158.96 5.75 3.83 12.26
48 64.0 1.5 120.03 13.13 4.66 3.45
49 58.1 1.6 66.97 1.46 4.68 2.94
50 54.0 1.6 93.10 35.40 6.80 2.21
51 72.1 1.7 116.97 1.58 3.39 2.93
52 68.5 1.6 21.15 1.85 3.50 5.88
53 54.0 1.5 40.44 6.03 2.29 10.94
54 55.0 1.5 140.00 3.76 2.63 9.77
55 81.5 1.6 104.09 4.77 2.89 10.99
56 70.1 1.6 150.07 8.07 4.37 12.02
57 49.0 1.6 59.55 7.01 4.06 2.72
58 50.1 1.6 129.97 2.94 1.55 16.57
59 54.9 1.5 96.97 5.95 5.42 3.92
60 56.0 1.5 160.40 24.10 2.03 7.58
61 65.0 1.5 48.53 10.33 3.60 0.14
62 65.0 1.5 124.00 8.26 6.43 10.90
63 59.0 1.5 108.94 3.27 3.45 10.04
64 58.0 1.5 122.97 5.63 5.37 9.79
65 74.0 1.7 56.65 12.95 5.18 14.45
66 74.5 1.7 219.99 15.09 7.18 12.99
67 72.6 1.5 150.06 49.16 1.26 28.46
68 76.0 1.6 170.49 46.19 2.61 11.30
69 51.9 1.4 85.74 3.54 1.83 4.58
70 53.0 1.4 46.48 3.38 4.65 4.21
71 81.0 1.5 109.87 2.95 3.61 8.64
72 NA NA 103.95 2.06 1.57 8.99
73 51.0 1.5 76.06 2.81 3.92 5.67
74 51.4 1.4 45.26 1.17 2.41 5.86
75 62.0 1.5 26.21 7.50 3.71 20.51
76 62.5 1.5 81.91 3.02 1.99 10.41
77 56.0 1.5 58.90 2.24 1.57 10.90
78 56.0 1.5 75.49 2.64 7.96 0.91
79 61.0 1.5 98.62 2.42 4.51 5.97
80 60.0 1.5 267.99 2.39 0.82 1.47
81 91.9 1.5 45.39 5.47 4.11 9.58
82 92.1 1.7 58.67 14.77 3.67 3.71
83 55.0 1.6 48.53 3.03 2.33 21.53
84 56.0 1.6 21.40 1.98 4.18 0.63
85 56.9 1.4 132.01 6.74 8.91 9.96
86 57.6 1.6 39.65 13.25 5.41 0.26
87 55.9 1.4 139.94 61.44 5.43 12.64
88 57.0 1.6 27.29 4.31 4.00 9.04
89 78.1 1.7 122.98 4.95 4.38 21.48
90 NA NA 366.07 14.87 5.49 7.42
91 65.1 1.7 386.97 14.77 1.93 9.39
92 65.5 1.7 91.74 5.64 5.25 9.43
93 54.0 1.5 77.89 4.99 1.28 7.09
94 53.0 1.5 77.32 24.92 4.63 7.90
95 55.9 1.4 185.02 4.28 3.72 5.79
96 54.9 1.5 28.87 17.47 12.07 1.45
97 57.0 1.4 31.49 3.15 2.33 20.69
98 56.8 1.5 110.16 12.16 3.96 11.54
99 73.1 1.6 121.67 23.17 1.57 13.37
100 71.7 1.4 217.02 4.27 2.66 1.47
101 65.0 1.5 47.80 14.90 1.78 15.00
102 64.9 1.5 120.17 21.07 4.30 16.29
103 59.0 1.6 289.00 60.20 9.95 11.80
104 54.0 1.5 75.78 4.38 14.23 9.96
105 64.9 1.4 136.89 3.63 2.01 10.69
106 66.0 1.5 217.00 4.26 5.36 0.20
De acuerdo a índice (posición de fila):
De acuerdo a condición:
keep in 6
keep if _n == 6
slice(datos_vac, 6) # dplyr sin pipe
datos_vac %>% slice(6) # dplyr con pipe
datos_vac %>%
slice(6) # pipe y buena práctica de estilo
keep in 6
keep if _n == 6
slice(datos_vac, 6) # dplyr sin pipe
datos_vac %>% slice(6) # dplyr con pipe
datos_vac %>%
slice(6) # pipe y buena práctica de estilo
keep in 15 keep if _n == 15 |
datos_vac %>% |
keep in 3/5 keep if _n == 3 | _n == 4 | _n == 5 |
datos_vac %>% |
| keep if _n == 5 | _n == 8 | _n == 1 | datos_vac %>% |
| keep if _n != _N | datos_vac %>% |
drop in 15 drop if _n == 15 |
datos_vac %>% |
keep if sexo == “Male”
filter(datos_vac, sexo == “Male”) # dplyr sin pipe
datos_vac %>% filter(sexo == “Male”) # dplyr con pipe
datos_vac %>%
filter(sexo == “Male”) # pipe y buena práctica de estilo
La función filter() selecciona individuos que cumplen una condición lógica.
Se debe usar operadores booleanos para construir condiciones lógicas simples o complejas.
| Argumento | Descripción |
|---|---|
| .data | Data frame o extensión de data frame (por ejemplo, tibble). |
| ... | Uno o más condiciones o pruebas que filter() evaluará en cada fila y seleccionará solo las condiciones que resulten verdaderas: TRUE. |
| Operador | Definición | Operador | Definición |
|---|---|---|---|
| < | menor que | A | B | A o B |
| <= | menor o igual que | is.na(A) | evalúa si A es NA |
| > | mayor que | !is.na(A) | evalúa si A no es NA |
| >= | mayor o igual que | A %in% B | evalúa si A está en B |
| == | exactamente igual a | !(A %in% B) | evalúa si A no está en B |
| != | diferente de | !A | no A |
| A & B | A y B |
Y que sean placebo:O que sean placebo: id time treat age race married married2 procedence weight
1 1 Baseline Placebo 33 Mestiza Single Without couple Callao 59.0
2 1 3 months Placebo 32 Mestiza Single Without couple Callao 59.9
3 2 Baseline Dosis 2 27 Mestiza Single Without couple Santa Anita 62.0
4 2 3 months Dosis 2 27 Mestiza Single Without couple Santa Anita 62.1
5 3 Baseline Dosis 1 25 Mestiza Single Without couple Callao 62.0
6 3 3 months Dosis 1 25 Mestiza Single Without couple Callao 60.0
7 4 Baseline Dosis 1 37 Mestiza Divorced Without couple Callao 60.9
8 4 3 months Dosis 1 38 Mestiza Divorced Without couple Callao 61.4
9 7 Baseline Dosis 1 26 Mestiza Married With couple SMP 59.1
10 7 3 months Dosis 1 26 Mestiza Married With couple SMP 58.6
11 9 Baseline Dosis 2 30 Mestiza Single Without couple SMP 61.0
12 9 3 months Dosis 2 30 Mestiza Single Without couple SMP 63.1
13 13 Baseline Dosis 2 25 Mestiza Married With couple Callao 48.5
14 13 3 months Dosis 2 25 Mestiza Married With couple Callao 54.0
15 32 Baseline Dosis 2 38 Mestiza Married With couple SMP 59.0
16 32 3 months Dosis 2 38 Mestiza Married With couple SMP 58.0
17 39 Baseline Dosis 2 23 Mestiza Single Without couple Callao 56.0
18 39 3 months Dosis 2 23 Mestiza Single Without couple Callao 56.0
19 48 Baseline Placebo 27 Mestiza Single Without couple Callao 55.9
20 48 3 months Placebo 27 Mestiza Single Without couple Callao 54.9
21 52 Baseline Dosis 1 34 Mestiza Cohabiting With couple SMP 59.0
22 52 3 months Dosis 1 34 Mestiza Cohabiting With couple SMP 54.0
height e2 lh fsh prog
1 1.4 87.30 3.28 1.95 14.20
2 1.3 210.05 26.85 8.83 12.95
3 1.5 169.01 6.34 4.32 0.50
4 1.6 99.91 5.77 1.70 9.61
5 1.6 78.76 11.86 2.81 10.46
6 1.6 155.04 10.14 4.51 5.04
7 1.5 40.99 4.57 3.81 4.64
8 1.5 109.03 7.29 2.39 11.73
9 1.6 91.28 3.25 4.77 9.54
10 1.6 91.34 3.31 4.83 9.60
11 1.6 49.58 10.88 4.04 0.55
12 1.7 46.28 17.58 4.65 0.08
13 1.5 73.80 4.30 2.86 14.80
14 1.5 130.15 15.85 5.78 6.95
15 1.5 108.94 3.27 3.45 10.04
16 1.5 122.97 5.63 5.37 9.79
17 1.5 58.90 2.24 1.57 10.90
18 1.5 75.49 2.64 7.96 0.91
19 1.4 185.02 4.28 3.72 5.79
20 1.5 28.87 17.47 12.07 1.45
21 1.6 289.00 60.20 9.95 11.80
22 1.5 75.78 4.38 14.23 9.96
id time treat age race married married2 procedence weight
1 1 Baseline Placebo 33 Mestiza Single Without couple Callao 59.0
2 1 3 months Placebo 32 Mestiza Single Without couple Callao 59.9
3 2 Baseline Dosis 2 27 Mestiza Single Without couple Santa Anita 62.0
4 2 3 months Dosis 2 27 Mestiza Single Without couple Santa Anita 62.1
5 3 Baseline Dosis 1 25 Mestiza Single Without couple Callao 62.0
6 3 3 months Dosis 1 25 Mestiza Single Without couple Callao 60.0
7 4 Baseline Dosis 1 37 Mestiza Divorced Without couple Callao 60.9
8 4 3 months Dosis 1 38 Mestiza Divorced Without couple Callao 61.4
9 7 Baseline Dosis 1 26 Mestiza Married With couple SMP 59.1
10 7 3 months Dosis 1 26 Mestiza Married With couple SMP 58.6
11 9 Baseline Dosis 2 30 Mestiza Single Without couple SMP 61.0
12 9 3 months Dosis 2 30 Mestiza Single Without couple SMP 63.1
13 13 Baseline Dosis 2 25 Mestiza Married With couple Callao 48.5
14 13 3 months Dosis 2 25 Mestiza Married With couple Callao 54.0
15 32 Baseline Dosis 2 38 Mestiza Married With couple SMP 59.0
16 32 3 months Dosis 2 38 Mestiza Married With couple SMP 58.0
17 39 Baseline Dosis 2 23 Mestiza Single Without couple Callao 56.0
18 39 3 months Dosis 2 23 Mestiza Single Without couple Callao 56.0
19 48 Baseline Placebo 27 Mestiza Single Without couple Callao 55.9
20 48 3 months Placebo 27 Mestiza Single Without couple Callao 54.9
21 52 Baseline Dosis 1 34 Mestiza Cohabiting With couple SMP 59.0
22 52 3 months Dosis 1 34 Mestiza Cohabiting With couple SMP 54.0
height e2 lh fsh prog
1 1.4 87.30 3.28 1.95 14.20
2 1.3 210.05 26.85 8.83 12.95
3 1.5 169.01 6.34 4.32 0.50
4 1.6 99.91 5.77 1.70 9.61
5 1.6 78.76 11.86 2.81 10.46
6 1.6 155.04 10.14 4.51 5.04
7 1.5 40.99 4.57 3.81 4.64
8 1.5 109.03 7.29 2.39 11.73
9 1.6 91.28 3.25 4.77 9.54
10 1.6 91.34 3.31 4.83 9.60
11 1.6 49.58 10.88 4.04 0.55
12 1.7 46.28 17.58 4.65 0.08
13 1.5 73.80 4.30 2.86 14.80
14 1.5 130.15 15.85 5.78 6.95
15 1.5 108.94 3.27 3.45 10.04
16 1.5 122.97 5.63 5.37 9.79
17 1.5 58.90 2.24 1.57 10.90
18 1.5 75.49 2.64 7.96 0.91
19 1.4 185.02 4.28 3.72 5.79
20 1.5 28.87 17.47 12.07 1.45
21 1.6 289.00 60.20 9.95 11.80
22 1.5 75.78 4.38 14.23 9.96
En la misma carpeta, con la data gapminder.
Seleccione filas basados en indices.
Seleccione filas basados en condiciones.
10:00
La función set_var_labels() del paquete labelled() es muy útil para etiquetar columnas.
Los datos deben tener metadatos que permitan ser legibles por el ser humano.
Primero instalar y cargar paquete:
pipeline:datos_fase1 %>%
filter(age > 35) %>% # Primero filtro por age
select(id, time, treat, race, age) %>% # Luego me quedo solo con estas 5 columnas
arrange(age) # Por último, reordenamos por edad id time treat race age
1 11 3 months Dosis 2 Mestiza 36
2 18 Baseline Placebo Mestiza 36
3 18 3 months Placebo Mestiza 36
4 43 Baseline Placebo Mestiza 36
5 43 3 months Placebo Mestiza 36
6 46 Baseline Dosis 2 Mestiza 36
7 46 3 months Dosis 2 Mestiza 36
8 4 Baseline Dosis 1 Mestiza 37
9 11 Baseline Dosis 2 Mestiza 37
10 15 Baseline Placebo Mestiza 37
11 15 3 months Placebo Mestiza 37
12 25 Baseline Placebo Mestiza 37
13 25 3 months Placebo Mestiza 37
14 38 Baseline Dosis 2 Mestiza 37
15 38 3 months Dosis 2 Mestiza 37
16 4 3 months Dosis 1 Mestiza 38
17 6 Baseline Placebo Mestiza 38
18 6 3 months Placebo Mestiza 38
19 10 Baseline Placebo Mestiza 38
20 10 3 months Placebo Mestiza 38
21 31 Baseline Dosis 1 Mestiza 38
22 31 3 months Dosis 1 Mestiza 38
23 32 Baseline Dosis 2 Mestiza 38
24 32 3 months Dosis 2 Mestiza 38
25 36 Baseline Dosis 1 Mestiza 39
26 36 3 months Dosis 1 Mestiza 39
27 42 Baseline Dosis 2 Mestiza 39
28 42 3 months Dosis 2 Mestiza 39
29 17 Baseline Placebo Mestiza 40
30 17 3 months Placebo Mestiza 40
31 28 Baseline Dosis 2 Mestiza 40
32 28 3 months Dosis 2 Mestiza 40
33 34 Baseline Dosis 1 Mestiza 40
34 34 3 months Dosis 1 Mestiza 40
35 22 Baseline Dosis 1 Mestiza 41
36 22 3 months Dosis 1 Mestiza 41
37 33 Baseline Dosis 2 Mestiza 41
38 33 3 months Dosis 2 Mestiza 41
39 51 Baseline Dosis 1 Mestiza 41
40 51 3 months Dosis 1 Mestiza 41
En la misma carpeta con los datos gapminder.
Agregue etiquetas de variable.
Cree un pipeline.
Tomemos un descanso de 5 minutos…
Estire las piernas …
Deje de ver las pantallas …
… cualquier , las del celular también.
05:00
https://github.com/psotob91
percys1991@gmail.com
Curso: R para usuarios de Stata - Ed. 1 (2023)